package com.kedacom.ctsp.authority.vo;


import com.kedacom.ctsp.authority.dto.DataAccessDTO;
import com.kedacom.ctsp.authority.entity.ExtendedBean;
import com.kedacom.ctsp.authority.entity.ResourceSettingRelation;
import com.kedacom.ctsp.authority.entity.SettingForType;
import com.kedacom.ctsp.web.vo.VO;

import java.util.List;
import java.util.Set;

/**
 * 资源设置vo
 *
 * @author sunchenjie
 * @date 2017/11/12
 * <p>
 * STPK 状态的主键类型
 * UPK settingForId（（userId、组织结构id）的主键类型
 * PK resource、resourceSetting表的主键类型
 */
public interface ResourceSettingRelationVO extends VO<ResourceSettingRelation, String>, ExtendedBean {

    String SETTING_FOR_TYPE = "settingForType";
    String SETTING_FOR_ID = "settingForId";

    String RESOURCE_ID = "resource.id";
    String TYPE = "type";
    String FIELD = "field";
    String DATA_ACCESS = "dataAccess";
    String DATA_SCOPE = "dataScope";
    String REMARK = "remark";

    /**
     * 设置给谁的主体
     *
     * @return
     */
    SettingForType getSettingForType();

    void setSettingForType(SettingForType settingForType);

    String getSettingForId();

    void setSettingForId(String settingForId);

    /**
     * 资源
     *
     * @return
     */
    ResourceVO getResource();

    void setResource(ResourceVO resource);

    Set<String> getIncludeFields();

    void setIncludeFields(Set<String> field);

    Set<String> getExcludeFields();

    void setExcludeFields(Set<String> field);

    List<DataAccessDTO> getDataAccess();

    void setDataAccess(List<DataAccessDTO> dataAccess);

    String getDataScope();

    void setDataScope(String dataScope);


    String getRemark();

    void setRemark(String remark);

}
